package org.finesys.chat.core.base.service;

import org.finesys.ai.core.chat.ChatCompletionResponse;
import org.finesys.ai.core.completion.CompletionResponse;
import org.finesys.ai.core.embedding.EmbeddingResponse;
import org.finesys.ai.core.image.GenerateImagesResponse;
import org.finesys.chat.core.base.chat.ChatRequest;
import org.reactivestreams.Publisher;

/**
 * 会话接口
 */
public interface ChatService {


    /**
     * 补全接口
     */
    Publisher<CompletionResponse> completion(ChatRequest chatRequest);


    /**
     * 会话接口
     */
    Publisher<ChatCompletionResponse> chatCompletion(ChatRequest chatRequest);


    /**
     * 图片生成接口
     */
    Publisher<GenerateImagesResponse> imageGeneration(ChatRequest chatRequest);


    /**
     * 嵌入接口
     */
    Publisher<EmbeddingResponse> embedding(ChatRequest chatRequest);
}
